Spring Scheduler

Cron

想了解Cron最好的方法是看Quartz的官方文档

Cron表达式由6~7项组成,中间用空格分开。从左到右依次是:秒、分、时、日、月、周几、年(可忽略)。值可以是数字,也可以是以下符号:

  • *:所有值都匹配
  • ?:无所谓,不关心,通常放在”周几”里
  • ,:或者
  • /:增量值
  • -:区间

下面举几个例子:

  • 0 * * * * *:每分钟(当秒为0的时候)
  • 0 0 * * * *:每小时(当秒和分都为0的时候)
  • */10 * * * * *:每10秒
  • 0 5/15 * * * *:每小时的5分、20分、35分、50分
  • 0 0 9,13 * * *:每天的9点和13点
  • 0 0 8-10 * * *:每天的8点、9点、10点
  • 0 0/30 8-10 * * *:每天的8点、8点半、9点、9点半、10点
  • 0 0 9-17 * * MON-FRI:每周一到周五的9点、10点…直到17点(含)
  • 0 0 0 25 12 ?:每年12约25日圣诞节的0点0分0秒(午夜)
  • 0 30 10 * * ? 2016:2016年每天的10点半

其中的?在用法上其实和*是相同的。但是*语义上表示全匹配,而?并不代表全匹配,而是不关心。比如对于0 0 0 5 8 ? 2016来说,2016年8月5日是周五,?表示我不关心它是周几。而0 0 0 5 8 * 2016中的*表示周一也行,周二也行…语义上和2016年8月5日冲突了。

不记得也没关系,记住Cron Maker也可以,它可以在线生成cron表达式。

http://qinghua.github.io/spring-scheduler/